﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using MaguenBrokersMVC.Models;

namespace MaguenBrokersMVC
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            Database.SetInitializer(new MaguenBdInitializer());

            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
        public class MaguenBdInitializer : DropCreateDatabaseIfModelChanges<MaguenDb>
        {
            protected override void Seed(MaguenDb context)
            {
                base.Seed(context);
                context.Origenes.Add(new Origen { Nombre = "Argentina" });
                context.Origenes.Add(new Origen { Nombre = "Brasil" });
                context.Origenes.Add(new Origen { Nombre = "Bolivia" });
                context.Origenes.Add(new Origen { Nombre = "Chile" });
                context.Origenes.Add(new Origen { Nombre = "Colombia" });
                context.Origenes.Add(new Origen { Nombre = "Costa Rica" });
                context.Origenes.Add(new Origen { Nombre = "Cuba" });
                context.Origenes.Add(new Origen { Nombre = "El Salvador" });
                context.Origenes.Add(new Origen { Nombre = "Ecuador" });
                context.Origenes.Add(new Origen { Nombre = "España" });
                context.Origenes.Add(new Origen { Nombre = "Guatemala" });
                context.Origenes.Add(new Origen { Nombre = "Honduras" });
                context.Origenes.Add(new Origen { Nombre = "Mexico" });
                context.Origenes.Add(new Origen { Nombre = "Nicaragua" });
                context.Origenes.Add(new Origen { Nombre = "Panama" });
                context.Origenes.Add(new Origen { Nombre = "Paraguay" });
                context.Origenes.Add(new Origen { Nombre = "Peru" });
                context.Origenes.Add(new Origen { Nombre = "Puerto Rico" });
                context.Origenes.Add(new Origen { Nombre = "Republica Dominicana" });
                context.Origenes.Add(new Origen { Nombre = "Surinam" });
                context.Origenes.Add(new Origen { Nombre = "Uruguay" });
                context.Origenes.Add(new Origen { Nombre = "Venezuela" });

                context.Destinos.Add(new Destino { Nombre = "América Central" });
                context.Destinos.Add(new Destino { Nombre = "América del Norte" });
                context.Destinos.Add(new Destino { Nombre = "América del Sur" });
                context.Destinos.Add(new Destino { Nombre = "Europa y Mediterraneo" });
                context.Destinos.Add(new Destino { Nombre = "Resto del Mundo" });


                context.TiposViaje.Add(new TipoViaje { Nombre = "Viajes de Placer" });
                context.TiposViaje.Add(new TipoViaje { Nombre = "Multiviajes para viajeros frecuentes" });
                context.TiposViaje.Add(new TipoViaje { Nombre = "Deportes Amateurs" });
                context.TiposViaje.Add(new TipoViaje { Nombre = "Viajes en cruceros" });
                context.TiposViaje.Add(new TipoViaje { Nombre = "Seguros de Cancelación" });

                context.TipoSeguros.Add(new TipoSeguro { Nombre = "Temporal a 20 años" });
                context.TipoSeguros.Add(new TipoSeguro { Nombre = "Vida entera con apitalización" });

                context.TipoVivienda.Add(new TipoVivienda { Nombre = "Casa o dpto. Planta Baja" });
                context.TipoVivienda.Add(new TipoVivienda { Nombre = "Departamento" });
                context.TipoVivienda.Add(new TipoVivienda { Nombre = "Casa en Barrio Privado" });
                context.TipoVivienda.Add(new TipoVivienda { Nombre = "Casa en Country" });

                context.CondicionIvas.Add(new CondicionIva {Nombre = "Consumidor Final"});
                context.CondicionIvas.Add(new CondicionIva { Nombre = "Gran Contribuyente" });
                context.CondicionIvas.Add(new CondicionIva { Nombre = "Monotributo" });
                context.CondicionIvas.Add(new CondicionIva { Nombre = "No categorizado" });
                context.CondicionIvas.Add(new CondicionIva { Nombre = "Responsable Inscripto" });
                context.CondicionIvas.Add(new CondicionIva { Nombre = "Responsable No Inscripto" });

                context.SaveChanges();
            }
        }
    }
}